With the widespread use of web-based applications and the Internet in general, different websites using the ubiquitous extensible markup language (XML) format have been used for clients requesting web-based applications from a web server or web application server. Various applications have been developed such that a representation of data or functionality or both for these applications are XML documents. Such documents may be checked by an XML-based application against various XML Schema to insure the validity and compatibility of the XML documents. Web-based servers may have additional applications that may include XML security-based applications that analyze XML documents to insure that data structures and their contents in the XML documents do not pose a security threat to the web application server.
There are numerous XML based standards and protocols that use XML's extensibility properties and provide higher levels of semantics of the data represented in XML documents. Web services, for example, use the web services description language (WSDL), a web services language, which is used to describe a web based network service. WSDL is a language that is based on XML but extends XML further. WSDL provides a way to group messages into operations and operations into interfaces for web services. WSDL also provides a way to define bindings for each interface and protocol combination along with the endpoint address for each one. A complete WSDL definition contains all of the information necessary to invoke a web service or application. WSDL documents are often used in combination with XML Schema documents in order to describe simple object access protocol (SOAP) messages. Once a web service is available, the description and a link are published in a repository so that potential users may find and access the service. When a user wishes to use the web service, a WSDL file is requested in order to find out the methods and functions that are offered by the service, along with their usage. The client uses this information in the WSDL file to form a Simple Object Access Protocol (SOAP) request to the server. A client device connecting to a web service can read the WSDL file to determine what functions are available on the server and is able to know precisely how to interact with the Web service it describes. Special data types in SOAP messages may be defined in a WSDL document using XML Schema Description Language. The client device then uses SOAP to actually call one of the functions listed in the WSDL file. A web server may use a WSDL document to enforce the structure and content of SOAP messages. Such enforcement may be a validation of the SOAP message against the WSDL document that defines and describes the web service.
There is a resemblance between validation of SOAP messages against a WSDL document and validation of general purpose XML documents against an XML Schema document. However, validation of SOAP messages against WSDL documents requires specialized processing tools that are different or are additional to those needed for XML document validation against XML Schema. SOAP messages require structural requirements beyond the basic syntactic requirements of well-formedness, that is, they need also to comply with a WSDL document. The nature of the validation against the WSDL document depends on implementation. General purpose XML processing tools and schema validation tools are commonly available for a vast variety of programming languages, platforms and systems; many times they are already available and do not require any installation. However, SOAP validation against WSDLs is still not as common. Thus, in order to validate SOAP messages against WSDLs, web applications and web services require functionality for this purpose in addition to existing XML and XML Schema processing tools. Many times, such additional applications are tailored specifically for specific WSDLs and require separate design and implementation for SOAP validation against WSDLs beyond the existing XML Schema validation facilities, thus increasing expense and complexity.